package Map.MapOf;

import java.util.List;
import java.util.Map;
import java.util.Set;

/*
 *   List、Set、Map接口中，有一个静态方法of，可以给集合一次添加多个元素
 *   static <E> list <E> of(E ... elements)
 *   使用前提：
 *       当集合中存储的元素个数已经确定，不再改变时
 *   注意：
 *       1、of方法只适用于List、Set、Map接口，不适用于接口的实现类
 *       2、of方法返回的是一个不能改变的集合，集合不能再使用add，put方法添加元素，会抛出异常
 *       3、Set、Map接口在使用of时，不能有重复元素，否则会抛出异常
 *
 * */
public class MapOf {
    public static void main(String[] args) {
        List<Integer> integers = List.of(1, 2, 3, 4, 5);
        System.out.println(integers);

        //java.lang.UnsupportedOperationException,不支持的操作
        // integers.add(3);


        //java.lang.IllegalArgumentException: duplicate element: 1,元素重复，抛出异常
        //Set<Integer> set = Set.of(1, 2, 3, 4, 1);
        Set<Integer> set = Set.of(1, 2, 3, 4);
        System.out.println(set);
        //java.lang.UnsupportedOperationException
        // set.add(5);

        ////java.lang.IllegalArgumentException:duplicate key: c 元素重复，抛出异常
        // Map<String, Integer> map = Map.of("a", 1, "b", 1, "c", 1, "c", 1);
        Map<String, Integer> map = Map.of("a", 1, "b", 1, "c", 1);
        //java.lang.UnsupportedOperationException
        // map.put("c",1);
        System.out.println(map);

    }
}
